package thread.test;

/**
 * 消费者(吃货)类:是一个线程类,可以集成thread
 * 设置线程任务,吃包子
 * 对包子的状态进行判断
 * false:没有包子
 *      吃货调用wait方法进行等待状态
 *  true:有包子
 *      吃货吃包子
 *      吃货吃完包子
 *      修改包子的状态为false
 *      吃货唤醒包子铺线程,生产包子
 */
public class ChiHuo extends Thread {

    private Baozi bz;  //包子变量

    public ChiHuo(Baozi baozi){
        bz = baozi;
    }

    @Override
    public void run() {
        while (true)
            synchronized (bz) {
                if (bz.flag == false) {
                    try {
                        bz.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                //被唤醒之后执行代码,吃包子
                System.out.println("吃货正在吃:" + bz.pi + bz.xian + "的包子");
                //吃货吃包子
                //修改包子的状态为false没有
                bz.flag=false;
                //吃货唤醒包子铺线程,生产包子;
                bz.notify();
                System.out.println("吃货已经把:" + bz.pi + bz.xian + "的包子吃完了,包子铺开始生产包子");
                System.out.println("---------------------");




            }
    }
}
